@deephaven/iris-grid 1.22.1 → 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/README.md +284 -1
- 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/CommonTypes.d.ts +62 -2
- package/dist/CommonTypes.d.ts.map +1 -1
- package/dist/CommonTypes.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.d.ts +85 -2
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +709 -861
- 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/IrisGridModel.d.ts +30 -1
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModel.js +36 -1
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelUpdater.js +32 -30
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridModelWidgetProps.d.ts +26 -0
- package/dist/IrisGridModelWidgetProps.d.ts.map +1 -0
- package/dist/IrisGridModelWidgetProps.js +2 -0
- package/dist/IrisGridModelWidgetProps.js.map +1 -0
- package/dist/IrisGridPartitionSelector.js +28 -62
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +41 -14
- 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.d.ts.map +1 -1
- package/dist/IrisGridTextCellRenderer.js +36 -53
- 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.d.ts +25 -2
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +297 -294
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/LazyIrisGrid.d.ts +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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.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/IrisGridTableOptionsWidgetProps.d.ts +22 -0
- package/dist/sidebar/IrisGridTableOptionsWidgetProps.d.ts.map +1 -0
- package/dist/sidebar/IrisGridTableOptionsWidgetProps.js +2 -0
- package/dist/sidebar/IrisGridTableOptionsWidgetProps.js.map +1 -0
- package/dist/sidebar/OptionType.d.ts +8 -0
- package/dist/sidebar/OptionType.d.ts.map +1 -1
- package/dist/sidebar/OptionType.js +7 -0
- package/dist/sidebar/OptionType.js.map +1 -1
- package/dist/sidebar/PluginTableOptionsErrorBoundary.d.ts +30 -0
- package/dist/sidebar/PluginTableOptionsErrorBoundary.d.ts.map +1 -0
- package/dist/sidebar/PluginTableOptionsErrorBoundary.js +55 -0
- package/dist/sidebar/PluginTableOptionsErrorBoundary.js.map +1 -0
- 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.js +1 -3
- 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/index.d.ts +3 -2
- package/dist/sidebar/index.d.ts.map +1 -1
- package/dist/sidebar/index.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
|
@@ -47,13 +47,9 @@ class ChartBuilder extends PureComponent {
|
|
|
47
47
|
constructor(props) {
|
|
48
48
|
super(props);
|
|
49
49
|
bindAllMethods(this);
|
|
50
|
-
var
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
var {
|
|
54
|
-
columns,
|
|
55
|
-
dh
|
|
56
|
-
} = model;
|
|
50
|
+
var model = props.model;
|
|
51
|
+
var columns = model.columns,
|
|
52
|
+
dh = model.dh;
|
|
57
53
|
var type = this.getTypes()[0];
|
|
58
54
|
var xAxis = ChartBuilder.getDefaultXAxis(type, columns);
|
|
59
55
|
var seriesItems = ChartBuilder.makeDefaultSeriesItems(dh, type, columns);
|
|
@@ -69,12 +65,8 @@ class ChartBuilder extends PureComponent {
|
|
|
69
65
|
};
|
|
70
66
|
}
|
|
71
67
|
getTypes() {
|
|
72
|
-
var
|
|
73
|
-
|
|
74
|
-
} = this.props;
|
|
75
|
-
var {
|
|
76
|
-
dh
|
|
77
|
-
} = model;
|
|
68
|
+
var model = this.props.model;
|
|
69
|
+
var dh = model.dh;
|
|
78
70
|
return [dh.plot.SeriesPlotStyle.LINE, dh.plot.SeriesPlotStyle.BAR, dh.plot.SeriesPlotStyle.SCATTER, dh.plot.SeriesPlotStyle.PIE
|
|
79
71
|
// IDS-6808: Disable Histogram in Chart Builder until we pipe histogram creation through the API
|
|
80
72
|
// dh.plot.SeriesPlotStyle.HISTOGRAM,
|
|
@@ -86,12 +78,8 @@ class ChartBuilder extends PureComponent {
|
|
|
86
78
|
* Just replaces underscores with spaces and capitals the first letter of each word.
|
|
87
79
|
*/
|
|
88
80
|
getTypeName(type) {
|
|
89
|
-
var
|
|
90
|
-
|
|
91
|
-
} = this.props;
|
|
92
|
-
var {
|
|
93
|
-
dh
|
|
94
|
-
} = model;
|
|
81
|
+
var model = this.props.model;
|
|
82
|
+
var dh = model.dh;
|
|
95
83
|
switch (type) {
|
|
96
84
|
case dh.plot.SeriesPlotStyle.LINE:
|
|
97
85
|
return 'Line';
|
|
@@ -108,12 +96,8 @@ class ChartBuilder extends PureComponent {
|
|
|
108
96
|
}
|
|
109
97
|
}
|
|
110
98
|
getTypeIcon(type) {
|
|
111
|
-
var
|
|
112
|
-
|
|
113
|
-
} = this.props;
|
|
114
|
-
var {
|
|
115
|
-
dh
|
|
116
|
-
} = model;
|
|
99
|
+
var model = this.props.model;
|
|
100
|
+
var dh = model.dh;
|
|
117
101
|
switch (type) {
|
|
118
102
|
case dh.plot.SeriesPlotStyle.LINE:
|
|
119
103
|
return /*#__PURE__*/_jsx(LineIcon, {});
|
|
@@ -130,12 +114,8 @@ class ChartBuilder extends PureComponent {
|
|
|
130
114
|
}
|
|
131
115
|
}
|
|
132
116
|
getXAxisLabel(type) {
|
|
133
|
-
var
|
|
134
|
-
|
|
135
|
-
} = this.props;
|
|
136
|
-
var {
|
|
137
|
-
dh
|
|
138
|
-
} = model;
|
|
117
|
+
var model = this.props.model;
|
|
118
|
+
var dh = model.dh;
|
|
139
119
|
switch (type) {
|
|
140
120
|
case dh.plot.SeriesPlotStyle.PIE:
|
|
141
121
|
return 'Labels';
|
|
@@ -146,12 +126,8 @@ class ChartBuilder extends PureComponent {
|
|
|
146
126
|
}
|
|
147
127
|
}
|
|
148
128
|
getSeriesLabel(type) {
|
|
149
|
-
var
|
|
150
|
-
|
|
151
|
-
} = this.props;
|
|
152
|
-
var {
|
|
153
|
-
dh
|
|
154
|
-
} = model;
|
|
129
|
+
var model = this.props.model;
|
|
130
|
+
var dh = model.dh;
|
|
155
131
|
switch (type) {
|
|
156
132
|
case dh.plot.SeriesPlotStyle.PIE:
|
|
157
133
|
return 'Values';
|
|
@@ -161,16 +137,10 @@ class ChartBuilder extends PureComponent {
|
|
|
161
137
|
}
|
|
162
138
|
handleAddSeries() {
|
|
163
139
|
this.setState(state => {
|
|
164
|
-
var
|
|
165
|
-
seriesItems
|
|
166
|
-
} = state;
|
|
140
|
+
var seriesItems = state.seriesItems;
|
|
167
141
|
var newSeriesItems = [...seriesItems];
|
|
168
|
-
var
|
|
169
|
-
|
|
170
|
-
} = this.props;
|
|
171
|
-
var {
|
|
172
|
-
columns
|
|
173
|
-
} = model;
|
|
142
|
+
var model = this.props.model;
|
|
143
|
+
var columns = model.columns;
|
|
174
144
|
newSeriesItems.push({
|
|
175
145
|
id: nanoid(),
|
|
176
146
|
value: columns[0].name
|
|
@@ -186,13 +156,9 @@ class ChartBuilder extends PureComponent {
|
|
|
186
156
|
}, this.sendChange);
|
|
187
157
|
}
|
|
188
158
|
handleReset() {
|
|
189
|
-
var
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
var {
|
|
193
|
-
columns,
|
|
194
|
-
dh
|
|
195
|
-
} = model;
|
|
159
|
+
var model = this.props.model;
|
|
160
|
+
var columns = model.columns,
|
|
161
|
+
dh = model.dh;
|
|
196
162
|
var type = this.getTypes()[0];
|
|
197
163
|
var xAxis = ChartBuilder.getDefaultXAxis(type, columns);
|
|
198
164
|
var seriesItems = ChartBuilder.makeDefaultSeriesItems(dh, type, columns);
|
|
@@ -207,9 +173,7 @@ class ChartBuilder extends PureComponent {
|
|
|
207
173
|
handleSeriesChange(eventTargetValue, index) {
|
|
208
174
|
var value = eventTargetValue;
|
|
209
175
|
this.setState(state => {
|
|
210
|
-
var
|
|
211
|
-
seriesItems
|
|
212
|
-
} = state;
|
|
176
|
+
var seriesItems = state.seriesItems;
|
|
213
177
|
seriesItems = [...seriesItems];
|
|
214
178
|
seriesItems[index].value = value;
|
|
215
179
|
return {
|
|
@@ -219,9 +183,7 @@ class ChartBuilder extends PureComponent {
|
|
|
219
183
|
}
|
|
220
184
|
handleSeriesDeleteClick(index) {
|
|
221
185
|
this.setState(state => {
|
|
222
|
-
var
|
|
223
|
-
seriesItems
|
|
224
|
-
} = state;
|
|
186
|
+
var seriesItems = state.seriesItems;
|
|
225
187
|
var newSeriesItems = [...seriesItems];
|
|
226
188
|
newSeriesItems.splice(index, 1);
|
|
227
189
|
return {
|
|
@@ -231,15 +193,12 @@ class ChartBuilder extends PureComponent {
|
|
|
231
193
|
}
|
|
232
194
|
handleSubmit(event) {
|
|
233
195
|
event.preventDefault();
|
|
234
|
-
var
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
xAxis,
|
|
241
|
-
isLinked
|
|
242
|
-
} = this.state;
|
|
196
|
+
var onSubmit = this.props.onSubmit;
|
|
197
|
+
var _this$state = this.state,
|
|
198
|
+
type = _this$state.type,
|
|
199
|
+
seriesItems = _this$state.seriesItems,
|
|
200
|
+
xAxis = _this$state.xAxis,
|
|
201
|
+
isLinked = _this$state.isLinked;
|
|
243
202
|
var series = seriesItems.map(item => item.value);
|
|
244
203
|
onSubmit({
|
|
245
204
|
type,
|
|
@@ -252,21 +211,13 @@ class ChartBuilder extends PureComponent {
|
|
|
252
211
|
var type = this.getTypes()[index];
|
|
253
212
|
log.debug2('handleTypeSelect', type);
|
|
254
213
|
this.setState(state => {
|
|
255
|
-
var
|
|
256
|
-
|
|
257
|
-
} = this.props;
|
|
258
|
-
var {
|
|
259
|
-
dh
|
|
260
|
-
} = model;
|
|
214
|
+
var model = this.props.model;
|
|
215
|
+
var dh = model.dh;
|
|
261
216
|
var maxSeriesCount = ChartBuilder.getMaxSeriesCount(dh, type);
|
|
262
|
-
var
|
|
263
|
-
seriesItems
|
|
264
|
-
} = state;
|
|
217
|
+
var seriesItems = state.seriesItems;
|
|
265
218
|
seriesItems = seriesItems.slice(0, maxSeriesCount);
|
|
266
219
|
if (seriesItems.length === 0 && maxSeriesCount > 0) {
|
|
267
|
-
var
|
|
268
|
-
columns
|
|
269
|
-
} = model;
|
|
220
|
+
var columns = model.columns;
|
|
270
221
|
seriesItems = ChartBuilder.makeDefaultSeriesItems(dh, type, columns);
|
|
271
222
|
}
|
|
272
223
|
return {
|
|
@@ -283,15 +234,12 @@ class ChartBuilder extends PureComponent {
|
|
|
283
234
|
}, this.sendChange);
|
|
284
235
|
}
|
|
285
236
|
sendChange() {
|
|
286
|
-
var
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
seriesItems,
|
|
293
|
-
xAxis
|
|
294
|
-
} = this.state;
|
|
237
|
+
var onChange = this.props.onChange;
|
|
238
|
+
var _this$state2 = this.state,
|
|
239
|
+
isLinked = _this$state2.isLinked,
|
|
240
|
+
type = _this$state2.type,
|
|
241
|
+
seriesItems = _this$state2.seriesItems,
|
|
242
|
+
xAxis = _this$state2.xAxis;
|
|
295
243
|
var series = seriesItems.map(item => item.value);
|
|
296
244
|
onChange({
|
|
297
245
|
type,
|
|
@@ -301,19 +249,14 @@ class ChartBuilder extends PureComponent {
|
|
|
301
249
|
});
|
|
302
250
|
}
|
|
303
251
|
render() {
|
|
304
|
-
var
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
var
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
seriesItems,
|
|
313
|
-
type,
|
|
314
|
-
xAxis,
|
|
315
|
-
isLinked
|
|
316
|
-
} = this.state;
|
|
252
|
+
var model = this.props.model;
|
|
253
|
+
var columns = model.columns,
|
|
254
|
+
dh = model.dh;
|
|
255
|
+
var _this$state3 = this.state,
|
|
256
|
+
seriesItems = _this$state3.seriesItems,
|
|
257
|
+
type = _this$state3.type,
|
|
258
|
+
xAxis = _this$state3.xAxis,
|
|
259
|
+
isLinked = _this$state3.isLinked;
|
|
317
260
|
var maxSeriesCount = ChartBuilder.getMaxSeriesCount(dh, type);
|
|
318
261
|
var xAxisLabel = this.getXAxisLabel(type);
|
|
319
262
|
var seriesLabel = this.getSeriesLabel(type);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartBuilder.js","names":["React","PureComponent","classNames","FontAwesomeIcon","Button","RadioGroup","Radio","Select","vsLink","dhUnlink","dhTable","dhNewCircleLargeFilled","vsCircleLargeFilled","vsTrash","Log","bindAllMethods","nanoid","BarIcon","HistogramIcon","LineIcon","PieIcon","ScatterIcon","jsx","_jsx","jsxs","_jsxs","log","module","ChartBuilder","getMaxSeriesCount","dh","type","plot","SeriesPlotStyle","PIE","HISTOGRAM","makeSeriesItem","value","id","makeDefaultSeriesItems","columns","maxSeriesCount","length","name","getDefaultXAxis","constructor","props","model","getTypes","xAxis","seriesItems","state","isLinked","LINE","BAR","SCATTER","getTypeName","getTypeIcon","getXAxisLabel","getSeriesLabel","handleAddSeries","setState","newSeriesItems","push","sendChange","handleLinkStateChange","handleReset","handleSeriesChange","eventTargetValue","index","handleSeriesDeleteClick","splice","handleSubmit","event","preventDefault","onSubmit","series","map","item","handleTypeClick","debug2","slice","handleXAxisChange","onChange","render","xAxisLabel","seriesLabel","isSeriesVisible","isAddSeriesVisible","className","children","chartType","key","active","onClick","column","seriesItem","i","concat","v","kind","icon","tooltip","mask","transform","orientation"],"sources":["../../src/sidebar/ChartBuilder.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, RadioGroup, Radio, Select } from '@deephaven/components';\nimport {\n vsLink,\n dhUnlink,\n dhTable,\n dhNewCircleLargeFilled,\n vsCircleLargeFilled,\n vsTrash,\n} from '@deephaven/icons';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { bindAllMethods } from '@deephaven/utils';\nimport { nanoid } from 'nanoid';\nimport {\n BarIcon,\n HistogramIcon,\n LineIcon,\n PieIcon,\n ScatterIcon,\n} from './icons';\nimport './ChartBuilder.scss';\nimport type IrisGridModel from '../IrisGridModel';\n\nconst log = Log.module('ChartBuilder');\n\nexport type ChartBuilderSettings = {\n type: DhType.plot.SeriesPlotStyle;\n series: string[];\n xAxis: string;\n isLinked: boolean;\n};\nexport type SeriesItem = {\n id: string;\n value: string;\n};\n\ninterface ChartBuilderProps {\n model: IrisGridModel;\n onSubmit: (obj: ChartBuilderSettings) => void;\n onChange: (obj: ChartBuilderSettings) => void;\n}\ninterface ChartBuilderState {\n /** The selected chart type */\n type: DhType.plot.SeriesPlotStyle;\n\n /** Array of column names of the series to display */\n seriesItems: readonly SeriesItem[];\n\n /** The column name to use as the x-axis */\n xAxis: string;\n\n /** Whether the newly created chart should be linked with the table (update when filters update) */\n isLinked: boolean;\n}\n/**\n * Form for configuring all the settings when creating a console.\n */\nclass ChartBuilder extends PureComponent<ChartBuilderProps, ChartBuilderState> {\n static getMaxSeriesCount(\n dh: typeof DhType,\n type: DhType.plot.SeriesPlotStyle\n ): number {\n switch (type) {\n case dh.plot.SeriesPlotStyle.PIE:\n return 1;\n case dh.plot.SeriesPlotStyle.HISTOGRAM:\n return 0;\n default:\n return 100;\n }\n }\n\n static makeSeriesItem(value: string): SeriesItem {\n return { id: nanoid(), value };\n }\n\n static makeDefaultSeriesItems(\n dh: typeof DhType,\n type: DhType.plot.SeriesPlotStyle,\n columns: readonly DhType.Column[]\n ): SeriesItem[] {\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(dh, type);\n if (maxSeriesCount === 0 || columns == null || columns.length === 0) {\n return [];\n }\n\n const value = columns.length > 1 ? columns[1].name : columns[0].name;\n return [ChartBuilder.makeSeriesItem(value)];\n }\n\n static getDefaultXAxis(\n type: DhType.plot.SeriesPlotStyle,\n columns: readonly DhType.Column[]\n ): string | null {\n if (columns != null && columns.length > 0) {\n return columns[0].name;\n }\n\n return null;\n }\n\n constructor(props: ChartBuilderProps) {\n super(props);\n\n bindAllMethods(this);\n\n const { model } = props;\n const { columns, dh } = model;\n\n const type = this.getTypes()[0];\n const xAxis = ChartBuilder.getDefaultXAxis(type, columns) as string;\n const seriesItems = ChartBuilder.makeDefaultSeriesItems(dh, type, columns);\n\n this.state = {\n /** The selected chart type */\n type,\n\n /** Array of column names of the series to display */\n seriesItems,\n\n /** The column name to use as the x-axis */\n xAxis,\n\n /** Whether the newly created chart should be linked with the table (update when filters update) */\n isLinked: true,\n };\n }\n\n getTypes(): number[] {\n const { model } = this.props;\n const { dh } = model;\n return [\n dh.plot.SeriesPlotStyle.LINE,\n dh.plot.SeriesPlotStyle.BAR,\n dh.plot.SeriesPlotStyle.SCATTER,\n dh.plot.SeriesPlotStyle.PIE,\n // IDS-6808: Disable Histogram in Chart Builder until we pipe histogram creation through the API\n // dh.plot.SeriesPlotStyle.HISTOGRAM,\n ];\n }\n\n /**\n * Converts the provided chart type into a readable type.\n * Just replaces underscores with spaces and capitals the first letter of each word.\n */\n getTypeName(type: number): string | number {\n const { model } = this.props;\n const { dh } = model;\n switch (type) {\n case dh.plot.SeriesPlotStyle.LINE:\n return 'Line';\n case dh.plot.SeriesPlotStyle.BAR:\n return 'Bar';\n case dh.plot.SeriesPlotStyle.SCATTER:\n return 'Scatter';\n case dh.plot.SeriesPlotStyle.PIE:\n return 'Pie';\n case dh.plot.SeriesPlotStyle.HISTOGRAM:\n return 'Histogram';\n default:\n return type;\n }\n }\n\n getTypeIcon(type: DhType.plot.SeriesPlotStyle): React.ReactElement | null {\n const { model } = this.props;\n const { dh } = model;\n switch (type) {\n case dh.plot.SeriesPlotStyle.LINE:\n return <LineIcon />;\n case dh.plot.SeriesPlotStyle.BAR:\n return <BarIcon />;\n case dh.plot.SeriesPlotStyle.SCATTER:\n return <ScatterIcon />;\n case dh.plot.SeriesPlotStyle.PIE:\n return <PieIcon />;\n case dh.plot.SeriesPlotStyle.HISTOGRAM:\n return <HistogramIcon />;\n default:\n return null;\n }\n }\n\n getXAxisLabel(type: DhType.plot.SeriesPlotStyle): string {\n const { model } = this.props;\n const { dh } = model;\n switch (type) {\n case dh.plot.SeriesPlotStyle.PIE:\n return 'Labels';\n case dh.plot.SeriesPlotStyle.HISTOGRAM:\n return 'Data';\n default:\n return 'X-Axis';\n }\n }\n\n getSeriesLabel(type: DhType.plot.SeriesPlotStyle): string {\n const { model } = this.props;\n const { dh } = model;\n switch (type) {\n case dh.plot.SeriesPlotStyle.PIE:\n return 'Values';\n default:\n return 'Series';\n }\n }\n\n handleAddSeries(): void {\n this.setState(state => {\n const { seriesItems } = state;\n const newSeriesItems = [...seriesItems];\n\n const { model } = this.props;\n const { columns } = model;\n newSeriesItems.push({\n id: nanoid(),\n value: columns[0].name,\n });\n\n return { seriesItems: newSeriesItems };\n }, this.sendChange);\n }\n\n handleLinkStateChange(value: string): void {\n this.setState({ isLinked: value === 'true' }, this.sendChange);\n }\n\n handleReset(): void {\n const { model } = this.props;\n const { columns, dh } = model;\n\n const type = this.getTypes()[0];\n const xAxis = ChartBuilder.getDefaultXAxis(type, columns) as string;\n const seriesItems = ChartBuilder.makeDefaultSeriesItems(dh, type, columns);\n const isLinked = true;\n\n this.setState({ type, seriesItems, xAxis, isLinked }, this.sendChange);\n }\n\n handleSeriesChange(eventTargetValue: string, index: number): void {\n const value = eventTargetValue;\n\n this.setState(state => {\n let { seriesItems } = state;\n seriesItems = [...seriesItems];\n seriesItems[index].value = value;\n\n return { seriesItems };\n }, this.sendChange);\n }\n\n handleSeriesDeleteClick(index: number): void {\n this.setState(state => {\n const { seriesItems } = state;\n const newSeriesItems = [...seriesItems];\n\n newSeriesItems.splice(index, 1);\n\n return { seriesItems: newSeriesItems };\n }, this.sendChange);\n }\n\n handleSubmit(event: React.FormEvent<HTMLFormElement>): void {\n event.preventDefault();\n\n const { onSubmit } = this.props;\n const { type, seriesItems, xAxis, isLinked } = this.state;\n const series = seriesItems.map(item => item.value);\n onSubmit({\n type,\n series,\n xAxis,\n isLinked,\n });\n }\n\n handleTypeClick(index: number): void {\n const type = this.getTypes()[index];\n\n log.debug2('handleTypeSelect', type);\n\n this.setState(state => {\n const { model } = this.props;\n const { dh } = model;\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(dh, type);\n let { seriesItems } = state;\n seriesItems = seriesItems.slice(0, maxSeriesCount);\n if (seriesItems.length === 0 && maxSeriesCount > 0) {\n const { columns } = model;\n seriesItems = ChartBuilder.makeDefaultSeriesItems(dh, type, columns);\n }\n\n return { type, seriesItems };\n }, this.sendChange);\n }\n\n handleXAxisChange(eventTargetValue: string): void {\n const xAxis = eventTargetValue;\n log.debug2('x-axis change', xAxis);\n\n this.setState({ xAxis }, this.sendChange);\n }\n\n sendChange(): void {\n const { onChange } = this.props;\n const { isLinked, type, seriesItems, xAxis } = this.state;\n const series = seriesItems.map(item => item.value);\n\n onChange({ type, series, xAxis, isLinked });\n }\n\n render(): JSX.Element {\n const { model } = this.props;\n const { columns, dh } = model;\n const { seriesItems, type, xAxis, isLinked } = this.state;\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(dh, type);\n const xAxisLabel = this.getXAxisLabel(type);\n const seriesLabel = this.getSeriesLabel(type);\n const isSeriesVisible = seriesItems.length > 0;\n const isAddSeriesVisible = seriesItems.length < maxSeriesCount;\n\n return (\n <div className=\"chart-builder\">\n <form onSubmit={this.handleSubmit}>\n <div className=\"form-row\">\n <label>Select Chart Type</label>\n <div className=\"form-row\">\n {this.getTypes().map((chartType, index) => {\n const key = chartType as unknown as React.Key;\n return (\n <div key={key} className=\"col col-chart-type\">\n <button\n type=\"button\"\n className={classNames(\n 'btn',\n 'btn-icon',\n 'btn-chart-type',\n {\n active: chartType === type,\n }\n )}\n onClick={() => this.handleTypeClick(index)}\n >\n {this.getTypeIcon(chartType)}\n {this.getTypeName(chartType)}\n </button>\n </div>\n );\n })}\n </div>\n </div>\n <hr />\n <div className=\"form-row form-inline\">\n <label className=\"col-2 label-left\">{xAxisLabel}</label>\n <Select\n className=\"form-control select-x-axis col\"\n value={xAxis}\n onChange={this.handleXAxisChange}\n >\n {columns.map(column => (\n <option key={column.name} value={column.name}>\n {column.name}\n </option>\n ))}\n </Select>\n </div>\n {isSeriesVisible && <hr />}\n {seriesItems.map((seriesItem, i) => (\n <div\n className=\"form-row form-inline form-series-item\"\n key={seriesItem.id}\n data-testid={`form-series-item-${i}`}\n >\n <label className=\"col-2 label-left\">\n {i === 0 ? seriesLabel : ''}\n </label>\n <Select\n className=\"form-control select-series col\"\n value={seriesItem.value}\n onChange={v => this.handleSeriesChange(v, i)}\n data-testid={`select-series-item-${i}`}\n >\n {columns.map(column => (\n <option key={column.name} value={column.name}>\n {column.name}\n </option>\n ))}\n </Select>\n {seriesItems.length > 1 && (\n <Button\n kind=\"ghost\"\n className=\"btn-delete-series ml-2 px-2\"\n data-testid={`delete-series-${i}`}\n onClick={() => {\n this.handleSeriesDeleteClick(i);\n }}\n icon={vsTrash}\n tooltip=\"Delete\"\n />\n )}\n </div>\n ))}\n {isAddSeriesVisible && (\n <div className=\"form-row\">\n <div className=\"col-2\" />\n <Button\n kind=\"ghost\"\n className=\"btn-add-series mt-1\"\n onClick={this.handleAddSeries}\n icon={dhNewCircleLargeFilled}\n >\n Add Series\n </Button>\n </div>\n )}\n <div className=\"form-row chart-builder-link\">\n <label className=\"col-2 label-right\">\n <div className=\"fa-md fa-layers\">\n <FontAwesomeIcon\n mask={dhTable}\n icon={vsCircleLargeFilled}\n transform=\"right-5 down-5\"\n />\n <FontAwesomeIcon\n icon={isLinked ? vsLink : dhUnlink}\n transform=\"grow-2 right-8 down-6\"\n />\n </div>\n </label>\n <RadioGroup\n aria-label=\"Link state options\"\n orientation=\"horizontal\"\n onChange={this.handleLinkStateChange}\n value={`${isLinked}`}\n >\n <Radio value=\"true\">Sync State</Radio>\n <Radio value=\"false\">Freeze State</Radio>\n </RadioGroup>\n </div>\n <div className=\"form-row\">\n <div className=\"col-2 label-right\" />\n <div className=\"col chart-builder-link-info\">\n {isLinked\n ? 'Charts with synced state will update to match any filters or user modifications applied to the parent table.'\n : 'Freeze State disconnects the chart state from the parent table. New filters or user modifications on the parent table will not be applied.'}\n </div>\n </div>\n <div\n className={classNames('form-row', 'justify-content-end', 'my-3')}\n >\n <Button\n kind=\"secondary\"\n className=\"btn-reset\"\n onClick={this.handleReset}\n >\n Reset\n </Button>\n <Button kind=\"primary\" type=\"submit\" className=\"btn-submit\">\n Create\n </Button>\n </div>\n </form>\n </div>\n );\n }\n}\n\nexport default ChartBuilder;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ChartBuilder.js","names":["React","PureComponent","classNames","FontAwesomeIcon","Button","RadioGroup","Radio","Select","vsLink","dhUnlink","dhTable","dhNewCircleLargeFilled","vsCircleLargeFilled","vsTrash","Log","bindAllMethods","nanoid","BarIcon","HistogramIcon","LineIcon","PieIcon","ScatterIcon","jsx","_jsx","jsxs","_jsxs","log","module","ChartBuilder","getMaxSeriesCount","dh","type","plot","SeriesPlotStyle","PIE","HISTOGRAM","makeSeriesItem","value","id","makeDefaultSeriesItems","columns","maxSeriesCount","length","name","getDefaultXAxis","constructor","props","model","getTypes","xAxis","seriesItems","state","isLinked","LINE","BAR","SCATTER","getTypeName","getTypeIcon","getXAxisLabel","getSeriesLabel","handleAddSeries","setState","newSeriesItems","push","sendChange","handleLinkStateChange","handleReset","handleSeriesChange","eventTargetValue","index","handleSeriesDeleteClick","splice","handleSubmit","event","preventDefault","onSubmit","_this$state","series","map","item","handleTypeClick","debug2","slice","handleXAxisChange","onChange","_this$state2","render","_this$state3","xAxisLabel","seriesLabel","isSeriesVisible","isAddSeriesVisible","className","children","chartType","key","active","onClick","column","seriesItem","i","concat","v","kind","icon","tooltip","mask","transform","orientation"],"sources":["../../src/sidebar/ChartBuilder.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, RadioGroup, Radio, Select } from '@deephaven/components';\nimport {\n vsLink,\n dhUnlink,\n dhTable,\n dhNewCircleLargeFilled,\n vsCircleLargeFilled,\n vsTrash,\n} from '@deephaven/icons';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { bindAllMethods } from '@deephaven/utils';\nimport { nanoid } from 'nanoid';\nimport {\n BarIcon,\n HistogramIcon,\n LineIcon,\n PieIcon,\n ScatterIcon,\n} from './icons';\nimport './ChartBuilder.scss';\nimport type IrisGridModel from '../IrisGridModel';\n\nconst log = Log.module('ChartBuilder');\n\nexport type ChartBuilderSettings = {\n type: DhType.plot.SeriesPlotStyle;\n series: string[];\n xAxis: string;\n isLinked: boolean;\n};\nexport type SeriesItem = {\n id: string;\n value: string;\n};\n\ninterface ChartBuilderProps {\n model: IrisGridModel;\n onSubmit: (obj: ChartBuilderSettings) => void;\n onChange: (obj: ChartBuilderSettings) => void;\n}\ninterface ChartBuilderState {\n /** The selected chart type */\n type: DhType.plot.SeriesPlotStyle;\n\n /** Array of column names of the series to display */\n seriesItems: readonly SeriesItem[];\n\n /** The column name to use as the x-axis */\n xAxis: string;\n\n /** Whether the newly created chart should be linked with the table (update when filters update) */\n isLinked: boolean;\n}\n/**\n * Form for configuring all the settings when creating a console.\n */\nclass ChartBuilder extends PureComponent<ChartBuilderProps, ChartBuilderState> {\n static getMaxSeriesCount(\n dh: typeof DhType,\n type: DhType.plot.SeriesPlotStyle\n ): number {\n switch (type) {\n case dh.plot.SeriesPlotStyle.PIE:\n return 1;\n case dh.plot.SeriesPlotStyle.HISTOGRAM:\n return 0;\n default:\n return 100;\n }\n }\n\n static makeSeriesItem(value: string): SeriesItem {\n return { id: nanoid(), value };\n }\n\n static makeDefaultSeriesItems(\n dh: typeof DhType,\n type: DhType.plot.SeriesPlotStyle,\n columns: readonly DhType.Column[]\n ): SeriesItem[] {\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(dh, type);\n if (maxSeriesCount === 0 || columns == null || columns.length === 0) {\n return [];\n }\n\n const value = columns.length > 1 ? columns[1].name : columns[0].name;\n return [ChartBuilder.makeSeriesItem(value)];\n }\n\n static getDefaultXAxis(\n type: DhType.plot.SeriesPlotStyle,\n columns: readonly DhType.Column[]\n ): string | null {\n if (columns != null && columns.length > 0) {\n return columns[0].name;\n }\n\n return null;\n }\n\n constructor(props: ChartBuilderProps) {\n super(props);\n\n bindAllMethods(this);\n\n const { model } = props;\n const { columns, dh } = model;\n\n const type = this.getTypes()[0];\n const xAxis = ChartBuilder.getDefaultXAxis(type, columns) as string;\n const seriesItems = ChartBuilder.makeDefaultSeriesItems(dh, type, columns);\n\n this.state = {\n /** The selected chart type */\n type,\n\n /** Array of column names of the series to display */\n seriesItems,\n\n /** The column name to use as the x-axis */\n xAxis,\n\n /** Whether the newly created chart should be linked with the table (update when filters update) */\n isLinked: true,\n };\n }\n\n getTypes(): number[] {\n const { model } = this.props;\n const { dh } = model;\n return [\n dh.plot.SeriesPlotStyle.LINE,\n dh.plot.SeriesPlotStyle.BAR,\n dh.plot.SeriesPlotStyle.SCATTER,\n dh.plot.SeriesPlotStyle.PIE,\n // IDS-6808: Disable Histogram in Chart Builder until we pipe histogram creation through the API\n // dh.plot.SeriesPlotStyle.HISTOGRAM,\n ];\n }\n\n /**\n * Converts the provided chart type into a readable type.\n * Just replaces underscores with spaces and capitals the first letter of each word.\n */\n getTypeName(type: number): string | number {\n const { model } = this.props;\n const { dh } = model;\n switch (type) {\n case dh.plot.SeriesPlotStyle.LINE:\n return 'Line';\n case dh.plot.SeriesPlotStyle.BAR:\n return 'Bar';\n case dh.plot.SeriesPlotStyle.SCATTER:\n return 'Scatter';\n case dh.plot.SeriesPlotStyle.PIE:\n return 'Pie';\n case dh.plot.SeriesPlotStyle.HISTOGRAM:\n return 'Histogram';\n default:\n return type;\n }\n }\n\n getTypeIcon(type: DhType.plot.SeriesPlotStyle): React.ReactElement | null {\n const { model } = this.props;\n const { dh } = model;\n switch (type) {\n case dh.plot.SeriesPlotStyle.LINE:\n return <LineIcon />;\n case dh.plot.SeriesPlotStyle.BAR:\n return <BarIcon />;\n case dh.plot.SeriesPlotStyle.SCATTER:\n return <ScatterIcon />;\n case dh.plot.SeriesPlotStyle.PIE:\n return <PieIcon />;\n case dh.plot.SeriesPlotStyle.HISTOGRAM:\n return <HistogramIcon />;\n default:\n return null;\n }\n }\n\n getXAxisLabel(type: DhType.plot.SeriesPlotStyle): string {\n const { model } = this.props;\n const { dh } = model;\n switch (type) {\n case dh.plot.SeriesPlotStyle.PIE:\n return 'Labels';\n case dh.plot.SeriesPlotStyle.HISTOGRAM:\n return 'Data';\n default:\n return 'X-Axis';\n }\n }\n\n getSeriesLabel(type: DhType.plot.SeriesPlotStyle): string {\n const { model } = this.props;\n const { dh } = model;\n switch (type) {\n case dh.plot.SeriesPlotStyle.PIE:\n return 'Values';\n default:\n return 'Series';\n }\n }\n\n handleAddSeries(): void {\n this.setState(state => {\n const { seriesItems } = state;\n const newSeriesItems = [...seriesItems];\n\n const { model } = this.props;\n const { columns } = model;\n newSeriesItems.push({\n id: nanoid(),\n value: columns[0].name,\n });\n\n return { seriesItems: newSeriesItems };\n }, this.sendChange);\n }\n\n handleLinkStateChange(value: string): void {\n this.setState({ isLinked: value === 'true' }, this.sendChange);\n }\n\n handleReset(): void {\n const { model } = this.props;\n const { columns, dh } = model;\n\n const type = this.getTypes()[0];\n const xAxis = ChartBuilder.getDefaultXAxis(type, columns) as string;\n const seriesItems = ChartBuilder.makeDefaultSeriesItems(dh, type, columns);\n const isLinked = true;\n\n this.setState({ type, seriesItems, xAxis, isLinked }, this.sendChange);\n }\n\n handleSeriesChange(eventTargetValue: string, index: number): void {\n const value = eventTargetValue;\n\n this.setState(state => {\n let { seriesItems } = state;\n seriesItems = [...seriesItems];\n seriesItems[index].value = value;\n\n return { seriesItems };\n }, this.sendChange);\n }\n\n handleSeriesDeleteClick(index: number): void {\n this.setState(state => {\n const { seriesItems } = state;\n const newSeriesItems = [...seriesItems];\n\n newSeriesItems.splice(index, 1);\n\n return { seriesItems: newSeriesItems };\n }, this.sendChange);\n }\n\n handleSubmit(event: React.FormEvent<HTMLFormElement>): void {\n event.preventDefault();\n\n const { onSubmit } = this.props;\n const { type, seriesItems, xAxis, isLinked } = this.state;\n const series = seriesItems.map(item => item.value);\n onSubmit({\n type,\n series,\n xAxis,\n isLinked,\n });\n }\n\n handleTypeClick(index: number): void {\n const type = this.getTypes()[index];\n\n log.debug2('handleTypeSelect', type);\n\n this.setState(state => {\n const { model } = this.props;\n const { dh } = model;\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(dh, type);\n let { seriesItems } = state;\n seriesItems = seriesItems.slice(0, maxSeriesCount);\n if (seriesItems.length === 0 && maxSeriesCount > 0) {\n const { columns } = model;\n seriesItems = ChartBuilder.makeDefaultSeriesItems(dh, type, columns);\n }\n\n return { type, seriesItems };\n }, this.sendChange);\n }\n\n handleXAxisChange(eventTargetValue: string): void {\n const xAxis = eventTargetValue;\n log.debug2('x-axis change', xAxis);\n\n this.setState({ xAxis }, this.sendChange);\n }\n\n sendChange(): void {\n const { onChange } = this.props;\n const { isLinked, type, seriesItems, xAxis } = this.state;\n const series = seriesItems.map(item => item.value);\n\n onChange({ type, series, xAxis, isLinked });\n }\n\n render(): JSX.Element {\n const { model } = this.props;\n const { columns, dh } = model;\n const { seriesItems, type, xAxis, isLinked } = this.state;\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(dh, type);\n const xAxisLabel = this.getXAxisLabel(type);\n const seriesLabel = this.getSeriesLabel(type);\n const isSeriesVisible = seriesItems.length > 0;\n const isAddSeriesVisible = seriesItems.length < maxSeriesCount;\n\n return (\n <div className=\"chart-builder\">\n <form onSubmit={this.handleSubmit}>\n <div className=\"form-row\">\n <label>Select Chart Type</label>\n <div className=\"form-row\">\n {this.getTypes().map((chartType, index) => {\n const key = chartType as unknown as React.Key;\n return (\n <div key={key} className=\"col col-chart-type\">\n <button\n type=\"button\"\n className={classNames(\n 'btn',\n 'btn-icon',\n 'btn-chart-type',\n {\n active: chartType === type,\n }\n )}\n onClick={() => this.handleTypeClick(index)}\n >\n {this.getTypeIcon(chartType)}\n {this.getTypeName(chartType)}\n </button>\n </div>\n );\n })}\n </div>\n </div>\n <hr />\n <div className=\"form-row form-inline\">\n <label className=\"col-2 label-left\">{xAxisLabel}</label>\n <Select\n className=\"form-control select-x-axis col\"\n value={xAxis}\n onChange={this.handleXAxisChange}\n >\n {columns.map(column => (\n <option key={column.name} value={column.name}>\n {column.name}\n </option>\n ))}\n </Select>\n </div>\n {isSeriesVisible && <hr />}\n {seriesItems.map((seriesItem, i) => (\n <div\n className=\"form-row form-inline form-series-item\"\n key={seriesItem.id}\n data-testid={`form-series-item-${i}`}\n >\n <label className=\"col-2 label-left\">\n {i === 0 ? seriesLabel : ''}\n </label>\n <Select\n className=\"form-control select-series col\"\n value={seriesItem.value}\n onChange={v => this.handleSeriesChange(v, i)}\n data-testid={`select-series-item-${i}`}\n >\n {columns.map(column => (\n <option key={column.name} value={column.name}>\n {column.name}\n </option>\n ))}\n </Select>\n {seriesItems.length > 1 && (\n <Button\n kind=\"ghost\"\n className=\"btn-delete-series ml-2 px-2\"\n data-testid={`delete-series-${i}`}\n onClick={() => {\n this.handleSeriesDeleteClick(i);\n }}\n icon={vsTrash}\n tooltip=\"Delete\"\n />\n )}\n </div>\n ))}\n {isAddSeriesVisible && (\n <div className=\"form-row\">\n <div className=\"col-2\" />\n <Button\n kind=\"ghost\"\n className=\"btn-add-series mt-1\"\n onClick={this.handleAddSeries}\n icon={dhNewCircleLargeFilled}\n >\n Add Series\n </Button>\n </div>\n )}\n <div className=\"form-row chart-builder-link\">\n <label className=\"col-2 label-right\">\n <div className=\"fa-md fa-layers\">\n <FontAwesomeIcon\n mask={dhTable}\n icon={vsCircleLargeFilled}\n transform=\"right-5 down-5\"\n />\n <FontAwesomeIcon\n icon={isLinked ? vsLink : dhUnlink}\n transform=\"grow-2 right-8 down-6\"\n />\n </div>\n </label>\n <RadioGroup\n aria-label=\"Link state options\"\n orientation=\"horizontal\"\n onChange={this.handleLinkStateChange}\n value={`${isLinked}`}\n >\n <Radio value=\"true\">Sync State</Radio>\n <Radio value=\"false\">Freeze State</Radio>\n </RadioGroup>\n </div>\n <div className=\"form-row\">\n <div className=\"col-2 label-right\" />\n <div className=\"col chart-builder-link-info\">\n {isLinked\n ? 'Charts with synced state will update to match any filters or user modifications applied to the parent table.'\n : 'Freeze State disconnects the chart state from the parent table. New filters or user modifications on the parent table will not be applied.'}\n </div>\n </div>\n <div\n className={classNames('form-row', 'justify-content-end', 'my-3')}\n >\n <Button\n kind=\"secondary\"\n className=\"btn-reset\"\n onClick={this.handleReset}\n >\n Reset\n </Button>\n <Button kind=\"primary\" type=\"submit\" className=\"btn-submit\">\n Create\n </Button>\n </div>\n </form>\n </div>\n );\n }\n}\n\nexport default ChartBuilder;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -53,9 +53,7 @@ class CustomColumnBuilder extends Component {
|
|
|
53
53
|
this.successButtonTimer = null;
|
|
54
54
|
}
|
|
55
55
|
componentDidMount() {
|
|
56
|
-
var
|
|
57
|
-
customColumns
|
|
58
|
-
} = this.props;
|
|
56
|
+
var customColumns = this.props.customColumns;
|
|
59
57
|
this.parseCustomColumns(customColumns);
|
|
60
58
|
this.startListening();
|
|
61
59
|
}
|
|
@@ -71,17 +69,13 @@ class CustomColumnBuilder extends Component {
|
|
|
71
69
|
});
|
|
72
70
|
}
|
|
73
71
|
startListening() {
|
|
74
|
-
var
|
|
75
|
-
model
|
|
76
|
-
} = this.props;
|
|
72
|
+
var model = this.props.model;
|
|
77
73
|
model.addEventListener(IrisGridModel.EVENT.COLUMNS_CHANGED, this.handleCustomColumnUpdated);
|
|
78
74
|
model.addEventListener(IrisGridModel.EVENT.UPDATED, this.handleCustomColumnUpdated);
|
|
79
75
|
model.addEventListener(IrisGridModel.EVENT.REQUEST_FAILED, this.handleRequestFailed);
|
|
80
76
|
}
|
|
81
77
|
stopListening() {
|
|
82
|
-
var
|
|
83
|
-
model
|
|
84
|
-
} = this.props;
|
|
78
|
+
var model = this.props.model;
|
|
85
79
|
model.removeEventListener(IrisGridModel.EVENT.COLUMNS_CHANGED, this.handleCustomColumnUpdated);
|
|
86
80
|
model.removeEventListener(IrisGridModel.EVENT.UPDATED, this.handleCustomColumnUpdated);
|
|
87
81
|
model.removeEventListener(IrisGridModel.EVENT.REQUEST_FAILED, this.handleRequestFailed);
|
|
@@ -106,9 +100,7 @@ class CustomColumnBuilder extends Component {
|
|
|
106
100
|
}
|
|
107
101
|
}
|
|
108
102
|
handleAddColumnClick() {
|
|
109
|
-
var
|
|
110
|
-
inputs
|
|
111
|
-
} = this.state;
|
|
103
|
+
var inputs = this.state.inputs;
|
|
112
104
|
var newInputs = [...inputs];
|
|
113
105
|
newInputs.push(CustomColumnBuilder.createCustomColumnInput());
|
|
114
106
|
this.setState({
|
|
@@ -116,9 +108,7 @@ class CustomColumnBuilder extends Component {
|
|
|
116
108
|
});
|
|
117
109
|
}
|
|
118
110
|
handleDeleteColumn(eventKey) {
|
|
119
|
-
var
|
|
120
|
-
inputs
|
|
121
|
-
} = this.state;
|
|
111
|
+
var inputs = this.state.inputs;
|
|
122
112
|
var customColumnIndex = this.getInputIndex(inputs, eventKey);
|
|
123
113
|
var newInputs = [...inputs];
|
|
124
114
|
newInputs.splice(customColumnIndex, 1);
|
|
@@ -130,9 +120,7 @@ class CustomColumnBuilder extends Component {
|
|
|
130
120
|
});
|
|
131
121
|
}
|
|
132
122
|
handleInputChange(eventKey, type, value) {
|
|
133
|
-
var
|
|
134
|
-
inputs
|
|
135
|
-
} = this.state;
|
|
123
|
+
var inputs = this.state.inputs;
|
|
136
124
|
var customColumnIndex = this.getInputIndex(inputs, eventKey);
|
|
137
125
|
var customColumnInput = this.getInput(inputs, eventKey);
|
|
138
126
|
var newCustomInput = _objectSpread({}, customColumnInput);
|
|
@@ -144,9 +132,7 @@ class CustomColumnBuilder extends Component {
|
|
|
144
132
|
});
|
|
145
133
|
}
|
|
146
134
|
handleCustomColumnUpdated() {
|
|
147
|
-
var
|
|
148
|
-
isCustomColumnApplying
|
|
149
|
-
} = this.state;
|
|
135
|
+
var isCustomColumnApplying = this.state.isCustomColumnApplying;
|
|
150
136
|
if (!isCustomColumnApplying) {
|
|
151
137
|
return;
|
|
152
138
|
}
|
|
@@ -161,9 +147,7 @@ class CustomColumnBuilder extends Component {
|
|
|
161
147
|
}
|
|
162
148
|
handleRequestFailed(event) {
|
|
163
149
|
var customEvent = event;
|
|
164
|
-
var
|
|
165
|
-
isCustomColumnApplying
|
|
166
|
-
} = this.state;
|
|
150
|
+
var isCustomColumnApplying = this.state.isCustomColumnApplying;
|
|
167
151
|
if (!isCustomColumnApplying) {
|
|
168
152
|
return;
|
|
169
153
|
}
|
|
@@ -189,9 +173,7 @@ class CustomColumnBuilder extends Component {
|
|
|
189
173
|
if (!result.destination) {
|
|
190
174
|
return;
|
|
191
175
|
}
|
|
192
|
-
var
|
|
193
|
-
inputs
|
|
194
|
-
} = this.state;
|
|
176
|
+
var inputs = this.state.inputs;
|
|
195
177
|
var sourceIndex = result.source.index;
|
|
196
178
|
var destinationIndex = result.destination.index;
|
|
197
179
|
var newInputs = [...inputs];
|
|
@@ -203,9 +185,7 @@ class CustomColumnBuilder extends Component {
|
|
|
203
185
|
});
|
|
204
186
|
}
|
|
205
187
|
handleEditorTabNavigation(focusEditorIndex, shiftKey) {
|
|
206
|
-
var
|
|
207
|
-
inputs
|
|
208
|
-
} = this.state;
|
|
188
|
+
var inputs = this.state.inputs;
|
|
209
189
|
// focus on drag handle
|
|
210
190
|
if (shiftKey) {
|
|
211
191
|
var _this$container;
|
|
@@ -223,23 +203,19 @@ class CustomColumnBuilder extends Component {
|
|
|
223
203
|
}
|
|
224
204
|
}
|
|
225
205
|
handleSaveClick() {
|
|
226
|
-
var
|
|
227
|
-
onSave,
|
|
228
|
-
customColumns
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
isCustomColumnApplying
|
|
233
|
-
} = this.state;
|
|
206
|
+
var _this$props = this.props,
|
|
207
|
+
onSave = _this$props.onSave,
|
|
208
|
+
originalCustomColumns = _this$props.customColumns;
|
|
209
|
+
var _this$state = this.state,
|
|
210
|
+
inputs = _this$state.inputs,
|
|
211
|
+
isCustomColumnApplying = _this$state.isCustomColumnApplying;
|
|
234
212
|
if (isCustomColumnApplying) {
|
|
235
213
|
return;
|
|
236
214
|
}
|
|
237
215
|
var customColumns = [];
|
|
238
216
|
inputs.forEach(input => {
|
|
239
|
-
var
|
|
240
|
-
|
|
241
|
-
formula
|
|
242
|
-
} = input;
|
|
217
|
+
var name = input.name,
|
|
218
|
+
formula = input.formula;
|
|
243
219
|
if (name && formula) {
|
|
244
220
|
customColumns.push("".concat(name, "=").concat(formula));
|
|
245
221
|
}
|
|
@@ -253,9 +229,7 @@ class CustomColumnBuilder extends Component {
|
|
|
253
229
|
}
|
|
254
230
|
resetRequestFailed() {
|
|
255
231
|
this.setState(_ref => {
|
|
256
|
-
var
|
|
257
|
-
hasRequestFailed
|
|
258
|
-
} = _ref;
|
|
232
|
+
var hasRequestFailed = _ref.hasRequestFailed;
|
|
259
233
|
if (hasRequestFailed) {
|
|
260
234
|
return {
|
|
261
235
|
hasRequestFailed: false
|
|
@@ -265,25 +239,20 @@ class CustomColumnBuilder extends Component {
|
|
|
265
239
|
});
|
|
266
240
|
}
|
|
267
241
|
renderInputs() {
|
|
268
|
-
var
|
|
269
|
-
inputs,
|
|
270
|
-
hasRequestFailed
|
|
271
|
-
} = this.state;
|
|
242
|
+
var _this$state2 = this.state,
|
|
243
|
+
inputs = _this$state2.inputs,
|
|
244
|
+
hasRequestFailed = _this$state2.hasRequestFailed;
|
|
272
245
|
var nameCount = new Map();
|
|
273
246
|
inputs.forEach(_ref2 => {
|
|
274
247
|
var _nameCount$get;
|
|
275
|
-
var
|
|
276
|
-
name
|
|
277
|
-
} = _ref2;
|
|
248
|
+
var name = _ref2.name;
|
|
278
249
|
return nameCount.set(name, ((_nameCount$get = nameCount.get(name)) !== null && _nameCount$get !== void 0 ? _nameCount$get : 0) + 1);
|
|
279
250
|
});
|
|
280
251
|
return inputs.map((input, index) => {
|
|
281
252
|
var _nameCount$get2;
|
|
282
|
-
var
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
formula
|
|
286
|
-
} = input;
|
|
253
|
+
var eventKey = input.eventKey,
|
|
254
|
+
name = input.name,
|
|
255
|
+
formula = input.formula;
|
|
287
256
|
var isDuplicate = ((_nameCount$get2 = nameCount.get(name)) !== null && _nameCount$get2 !== void 0 ? _nameCount$get2 : 0) > 1;
|
|
288
257
|
return /*#__PURE__*/_jsx(CustomColumnInput, {
|
|
289
258
|
inputIndex: index,
|
|
@@ -299,27 +268,20 @@ class CustomColumnBuilder extends Component {
|
|
|
299
268
|
});
|
|
300
269
|
}
|
|
301
270
|
renderSaveButton() {
|
|
302
|
-
var
|
|
303
|
-
inputs,
|
|
304
|
-
isCustomColumnApplying,
|
|
305
|
-
isSuccessShowing
|
|
306
|
-
} = this.state;
|
|
271
|
+
var _this$state3 = this.state,
|
|
272
|
+
inputs = _this$state3.inputs,
|
|
273
|
+
isCustomColumnApplying = _this$state3.isCustomColumnApplying,
|
|
274
|
+
isSuccessShowing = _this$state3.isSuccessShowing;
|
|
307
275
|
var saveText = inputs.length > 1 ? 'Save Columns' : 'Save Column';
|
|
308
276
|
var areNamesValid = inputs.every(_ref3 => {
|
|
309
|
-
var
|
|
310
|
-
name
|
|
311
|
-
} = _ref3;
|
|
277
|
+
var name = _ref3.name;
|
|
312
278
|
return name === '' || DbNameValidator.isValidColumnName(name);
|
|
313
279
|
});
|
|
314
280
|
var filteredNames = inputs.filter(_ref4 => {
|
|
315
|
-
var
|
|
316
|
-
name
|
|
317
|
-
} = _ref4;
|
|
281
|
+
var name = _ref4.name;
|
|
318
282
|
return name !== '';
|
|
319
283
|
}).map(_ref5 => {
|
|
320
|
-
var
|
|
321
|
-
name
|
|
322
|
-
} = _ref5;
|
|
284
|
+
var name = _ref5.name;
|
|
323
285
|
return name;
|
|
324
286
|
});
|
|
325
287
|
var areNamesUnique = new Set(filteredNames).size === filteredNames.length;
|
|
@@ -342,12 +304,8 @@ class CustomColumnBuilder extends Component {
|
|
|
342
304
|
});
|
|
343
305
|
}
|
|
344
306
|
render() {
|
|
345
|
-
var
|
|
346
|
-
|
|
347
|
-
} = this.props;
|
|
348
|
-
var {
|
|
349
|
-
errorMessage
|
|
350
|
-
} = this.state;
|
|
307
|
+
var onCancel = this.props.onCancel;
|
|
308
|
+
var errorMessage = this.state.errorMessage;
|
|
351
309
|
return /*#__PURE__*/_jsxs("div", {
|
|
352
310
|
role: "presentation",
|
|
353
311
|
className: "custom-column-builder-container",
|