@deephaven/iris-grid 0.11.6-beta.2 → 0.11.6-beta.5
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/IrisGrid.d.ts +1 -0
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +4 -0
- package/dist/IrisGrid.js.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +8 -4
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
- package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
- package/dist/sidebar/ChartBuilder.js +12 -20
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridCellOverflowMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,cAAM,gCAAiC,SAAQ,gBAAgB;IAC7D,OAAO,CAAC,QAAQ,CAAW;gBAEf,QAAQ,EAAE,QAAQ;IAM9B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,wBAAwB;IAiChC,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB;IAa5C,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB;IAM7C,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"IrisGridCellOverflowMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,cAAM,gCAAiC,SAAQ,gBAAgB;IAC7D,OAAO,CAAC,QAAQ,CAAW;gBAEf,QAAQ,EAAE,QAAQ;IAM9B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,wBAAwB;IAiChC,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB;IAa5C,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB;IAM7C,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAcjC,aAAa,IAAI,kBAAkB;IAKnC,OAAO,IAAI,kBAAkB;CAI9B;AAED,eAAe,gCAAgC,CAAC"}
|
|
@@ -176,10 +176,14 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
176
176
|
column,
|
|
177
177
|
row
|
|
178
178
|
} = point;
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
179
|
+
|
|
180
|
+
if (this.isHoveringOverflowButton(point)) {
|
|
181
|
+
this.irisGrid.setState({
|
|
182
|
+
showOverflowModal: true,
|
|
183
|
+
overflowText: this.irisGrid.getValueForCell(column, row)
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
|
|
183
187
|
return false;
|
|
184
188
|
}
|
|
185
189
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"names":["GridMouseHandler","deepEqual","IrisGridCellOverflowMouseHandler","constructor","irisGrid","destroyColumnTooltip","setState","overflowButtonTooltipProps","setCursor","point","isHoveringOverflowButton","cursor","stopPropagation","preventDefault","getButtonPosition","x","y","column","row","renderer","grid","state","props","metrics","model","canvasContext","context","theme","getTheme","rendererState","mouseX","mouseY","left","top","width","height","getCellOverflowButtonPosition","shouldRenderOverflowButton","onMove","newProps","onWheel","onDown","showOverflowModal","overflowText","getValueForCell","onContextMenu","onLeave"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"names":["GridMouseHandler","deepEqual","IrisGridCellOverflowMouseHandler","constructor","irisGrid","destroyColumnTooltip","setState","overflowButtonTooltipProps","setCursor","point","isHoveringOverflowButton","cursor","stopPropagation","preventDefault","getButtonPosition","x","y","column","row","renderer","grid","state","props","metrics","model","canvasContext","context","theme","getTheme","rendererState","mouseX","mouseY","left","top","width","height","getCellOverflowButtonPosition","shouldRenderOverflowButton","onMove","newProps","onWheel","onDown","showOverflowModal","overflowText","getValueForCell","onContextMenu","onLeave"],"mappings":"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","sourcesContent":["import {\n GridPoint,\n GridMouseHandler,\n EventHandlerResult,\n} from '@deephaven/grid';\nimport deepEqual from 'deep-equal';\nimport type IrisGrid from '../IrisGrid';\n\n/**\n * Handles cursor and click action for cell overflow button\n * The button is rendered via IrisGridRenderer\n */\nclass IrisGridCellOverflowMouseHandler extends GridMouseHandler {\n private irisGrid: IrisGrid;\n\n constructor(irisGrid: IrisGrid) {\n super(850); // Needs to be before GridSelectionMouseHandler\n\n this.irisGrid = irisGrid;\n }\n\n private destroyColumnTooltip(): void {\n this.irisGrid.setState({ overflowButtonTooltipProps: null });\n }\n\n private setCursor(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n this.cursor = 'pointer';\n return { stopPropagation: false, preventDefault: false };\n }\n\n this.cursor = null;\n return false;\n }\n\n private getButtonPosition({\n x,\n y,\n column,\n row,\n }: GridPoint): {\n left: number;\n top: number;\n width: number;\n height: number;\n } | null {\n if (column == null || row == null) {\n return null;\n }\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return null;\n }\n const { metrics } = state;\n const { model } = props;\n const { canvasContext: context } = grid || {};\n const theme = grid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n };\n\n const { left, top, width, height } = renderer.getCellOverflowButtonPosition(\n rendererState\n );\n if (left == null || width == null || top == null || height == null) {\n return null;\n }\n\n return { left, top, width, height };\n }\n\n private isHoveringOverflowButton(point: GridPoint): boolean {\n const { x, y } = point;\n const { left, top, width, height } = this.getButtonPosition(point) ?? {};\n if (left == null || width == null || top == null || height == null) {\n return false;\n }\n\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return false;\n }\n const { metrics } = state;\n const { model } = props;\n const { canvasContext: context } = grid || {};\n const theme = grid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n };\n\n return (\n renderer.shouldRenderOverflowButton(rendererState) &&\n x >= left &&\n x <= left + width &&\n y >= top &&\n y <= top + height\n );\n }\n\n onMove(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n const { overflowButtonTooltipProps } = this.irisGrid.state;\n const newProps = this.getButtonPosition(point);\n if (!deepEqual(overflowButtonTooltipProps, newProps)) {\n this.irisGrid.setState({ overflowButtonTooltipProps: newProps });\n }\n } else {\n this.destroyColumnTooltip();\n }\n return this.setCursor(point);\n }\n\n onWheel(point: GridPoint): EventHandlerResult {\n this.destroyColumnTooltip();\n return this.onMove(point);\n }\n\n // Needs to be onDown and not onClick b/c of GridSelectionMouseHandler shifting cell onDown\n onDown(point: GridPoint): boolean {\n this.destroyColumnTooltip();\n const { column, row } = point;\n\n if (this.isHoveringOverflowButton(point)) {\n this.irisGrid.setState({\n showOverflowModal: true,\n overflowText: this.irisGrid.getValueForCell(column, row),\n });\n }\n\n return false;\n }\n\n onContextMenu(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n\n onLeave(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n}\n\nexport default IrisGridCellOverflowMouseHandler;\n"],"file":"IrisGridCellOverflowMouseHandler.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/sidebar/ChartBuilder.jsx"],"names":[],"mappings":";AA4BA;;GAEG;AACH;IACE,gEAOE;IAEF;;;OAGG;IACH,mCAeC;IAED,kDAeC;IAED,iDASC;IAED,8DASC;IAED,sDAOC;IAED;;;MAEC;IAED;;;QAQC;IAED,qDAMC;IAED,
|
|
1
|
+
{"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/sidebar/ChartBuilder.jsx"],"names":[],"mappings":";AA4BA;;GAEG;AACH;IACE,gEAOE;IAEF;;;OAGG;IACH,mCAeC;IAED,kDAeC;IAED,iDASC;IAED,8DASC;IAED,sDAOC;IAED;;;MAEC;IAED;;;QAQC;IAED,qDAMC;IAED,wBAiCC;IAED,wBAcC;IAED,wCAEC;IAED,oBAUC;IAED,qCAYC;IAED,0CAWC;IAED,+BAOC;IAED,kCAkBC;IAED,oCAKC;IAED,mBAMC;CAmJF"}
|
|
@@ -138,6 +138,7 @@ class ChartBuilder extends PureComponent {
|
|
|
138
138
|
this.handleSubmit = this.handleSubmit.bind(this);
|
|
139
139
|
this.handleTypeClick = this.handleTypeClick.bind(this);
|
|
140
140
|
this.handleXAxisChange = this.handleXAxisChange.bind(this);
|
|
141
|
+
this.sendChange = this.sendChange.bind(this);
|
|
141
142
|
var {
|
|
142
143
|
model
|
|
143
144
|
} = props;
|
|
@@ -181,15 +182,13 @@ class ChartBuilder extends PureComponent {
|
|
|
181
182
|
return {
|
|
182
183
|
seriesItems
|
|
183
184
|
};
|
|
184
|
-
},
|
|
185
|
-
this.sendChange();
|
|
186
|
-
});
|
|
185
|
+
}, this.sendChange);
|
|
187
186
|
}
|
|
188
187
|
|
|
189
188
|
handleLinkStateChange(event) {
|
|
190
189
|
this.setState({
|
|
191
190
|
isLinked: event.target.value === 'true'
|
|
192
|
-
});
|
|
191
|
+
}, this.sendChange);
|
|
193
192
|
}
|
|
194
193
|
|
|
195
194
|
handleReset() {
|
|
@@ -208,9 +207,7 @@ class ChartBuilder extends PureComponent {
|
|
|
208
207
|
seriesItems,
|
|
209
208
|
xAxis,
|
|
210
209
|
isLinked
|
|
211
|
-
},
|
|
212
|
-
this.sendChange();
|
|
213
|
-
});
|
|
210
|
+
}, this.sendChange);
|
|
214
211
|
}
|
|
215
212
|
|
|
216
213
|
handleSeriesChange(event) {
|
|
@@ -227,9 +224,7 @@ class ChartBuilder extends PureComponent {
|
|
|
227
224
|
return {
|
|
228
225
|
seriesItems
|
|
229
226
|
};
|
|
230
|
-
},
|
|
231
|
-
this.sendChange();
|
|
232
|
-
});
|
|
227
|
+
}, this.sendChange);
|
|
233
228
|
}
|
|
234
229
|
|
|
235
230
|
handleSeriesDeleteClick(event) {
|
|
@@ -243,9 +238,7 @@ class ChartBuilder extends PureComponent {
|
|
|
243
238
|
return {
|
|
244
239
|
seriesItems
|
|
245
240
|
};
|
|
246
|
-
},
|
|
247
|
-
this.sendChange();
|
|
248
|
-
});
|
|
241
|
+
}, this.sendChange);
|
|
249
242
|
}
|
|
250
243
|
|
|
251
244
|
handleSubmit(event) {
|
|
@@ -293,9 +286,7 @@ class ChartBuilder extends PureComponent {
|
|
|
293
286
|
type,
|
|
294
287
|
seriesItems
|
|
295
288
|
};
|
|
296
|
-
},
|
|
297
|
-
this.sendChange();
|
|
298
|
-
});
|
|
289
|
+
}, this.sendChange);
|
|
299
290
|
}
|
|
300
291
|
|
|
301
292
|
handleXAxisChange(event) {
|
|
@@ -303,9 +294,7 @@ class ChartBuilder extends PureComponent {
|
|
|
303
294
|
log.debug2('x-axis change', xAxis);
|
|
304
295
|
this.setState({
|
|
305
296
|
xAxis
|
|
306
|
-
},
|
|
307
|
-
this.sendChange();
|
|
308
|
-
});
|
|
297
|
+
}, this.sendChange);
|
|
309
298
|
}
|
|
310
299
|
|
|
311
300
|
sendChange() {
|
|
@@ -376,13 +365,15 @@ class ChartBuilder extends PureComponent {
|
|
|
376
365
|
value: column.name
|
|
377
366
|
}, column.name)))), isSeriesVisible && /*#__PURE__*/React.createElement("hr", null), seriesItems.map((seriesItem, i) => /*#__PURE__*/React.createElement("div", {
|
|
378
367
|
className: "form-row form-inline form-series-item",
|
|
379
|
-
key: seriesItem.id
|
|
368
|
+
key: seriesItem.id,
|
|
369
|
+
"data-testid": "form-series-item-".concat(i)
|
|
380
370
|
}, /*#__PURE__*/React.createElement("label", {
|
|
381
371
|
className: "col-2 label-left"
|
|
382
372
|
}, i === 0 ? seriesLabel : ''), /*#__PURE__*/React.createElement("select", {
|
|
383
373
|
className: "form-control custom-select select-series col",
|
|
384
374
|
value: seriesItem.value,
|
|
385
375
|
onChange: this.handleSeriesChange,
|
|
376
|
+
"data-testid": "select-series-item-".concat(i),
|
|
386
377
|
"data-index": i
|
|
387
378
|
}, columns.map(column => /*#__PURE__*/React.createElement("option", {
|
|
388
379
|
key: column.name,
|
|
@@ -392,6 +383,7 @@ class ChartBuilder extends PureComponent {
|
|
|
392
383
|
type: "button",
|
|
393
384
|
className: "btn btn-link btn-link-icon btn-delete-series ml-2 px-2",
|
|
394
385
|
"data-index": i,
|
|
386
|
+
"data-testid": "delete-series-".concat(i),
|
|
395
387
|
onClick: this.handleSeriesDeleteClick
|
|
396
388
|
}, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
397
389
|
icon: vsTrash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/sidebar/ChartBuilder.jsx"],"names":["React","PureComponent","PropTypes","classNames","FontAwesomeIcon","RadioGroup","RadioItem","vsLink","dhUnlink","dhTable","dhNewCircleLargeFilled","vsCircleLargeFilled","vsTrash","dh","Log","shortid","BarIcon","HistogramIcon","LineIcon","PieIcon","ScatterIcon","IrisGridModel","log","module","ChartBuilder","getTypeName","type","plot","SeriesPlotStyle","LINE","BAR","SCATTER","PIE","HISTOGRAM","getTypeIcon","getMaxSeriesCount","getXAxisLabel","getSeriesLabel","makeSeriesItem","value","id","generate","makeDefaultSeriesItems","columns","maxSeriesCount","length","name","getDefaultXAxis","constructor","props","handleAddSeries","bind","handleLinkStateChange","handleReset","handleSeriesChange","handleSeriesDeleteClick","handleSubmit","handleTypeClick","handleXAxisChange","model","types","xAxis","seriesItems","state","isLinked","setState","concat","push","sendChange","event","target","index","getAttribute","splice","preventDefault","onSubmit","series","map","item","debug2","slice","onChange","render","xAxisLabel","seriesLabel","isSeriesVisible","isAddSeriesVisible","chartType","active","column","seriesItem","i","propTypes","instanceOf","isRequired","func"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { RadioGroup, RadioItem } from '@deephaven/components';\nimport {\n vsLink,\n dhUnlink,\n dhTable,\n dhNewCircleLargeFilled,\n vsCircleLargeFilled,\n vsTrash,\n} from '@deephaven/icons';\nimport dh from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport shortid from 'shortid';\nimport {\n BarIcon,\n HistogramIcon,\n LineIcon,\n PieIcon,\n ScatterIcon,\n} from './icons';\nimport './ChartBuilder.scss';\nimport IrisGridModel from '../IrisGridModel';\n\nconst log = Log.module('ChartBuilder');\n\n/**\n * Form for configuring all the settings when creating a console.\n */\nclass ChartBuilder extends PureComponent {\n static types = [\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 * 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 static getTypeName(type) {\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 static getTypeIcon(type) {\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 static getMaxSeriesCount(type) {\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 getXAxisLabel(type) {\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 static getSeriesLabel(type) {\n switch (type) {\n case dh.plot.SeriesPlotStyle.PIE:\n return 'Values';\n default:\n return 'Series';\n }\n }\n\n static makeSeriesItem(value) {\n return { id: shortid.generate(), value };\n }\n\n static makeDefaultSeriesItems(type, columns) {\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(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(type, columns) {\n if (columns != null && columns.length > 0) {\n return columns[0].name;\n }\n\n return null;\n }\n\n constructor(props) {\n super(props);\n\n this.handleAddSeries = this.handleAddSeries.bind(this);\n this.handleLinkStateChange = this.handleLinkStateChange.bind(this);\n this.handleReset = this.handleReset.bind(this);\n this.handleSeriesChange = this.handleSeriesChange.bind(this);\n this.handleSeriesDeleteClick = this.handleSeriesDeleteClick.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleTypeClick = this.handleTypeClick.bind(this);\n this.handleXAxisChange = this.handleXAxisChange.bind(this);\n\n const { model } = props;\n const { columns } = model;\n\n const type = ChartBuilder.types[0];\n const xAxis = ChartBuilder.getDefaultXAxis(type, columns);\n const seriesItems = ChartBuilder.makeDefaultSeriesItems(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 handleAddSeries() {\n this.setState(\n state => {\n let { seriesItems } = state;\n seriesItems = [].concat(seriesItems);\n\n const { model } = this.props;\n const { columns } = model;\n seriesItems.push({\n id: shortid.generate(),\n value: columns[0].name,\n });\n\n return { seriesItems };\n },\n () => {\n this.sendChange();\n }\n );\n }\n\n handleLinkStateChange(event) {\n this.setState({ isLinked: event.target.value === 'true' });\n }\n\n handleReset() {\n const { model } = this.props;\n const { columns } = model;\n\n const type = ChartBuilder.types[0];\n const xAxis = ChartBuilder.getDefaultXAxis(type, columns);\n const seriesItems = ChartBuilder.makeDefaultSeriesItems(type, columns);\n const isLinked = true;\n\n this.setState({ type, seriesItems, xAxis, isLinked }, () => {\n this.sendChange();\n });\n }\n\n handleSeriesChange(event) {\n const { value } = event.target;\n const index = event.target.getAttribute('data-index');\n\n this.setState(\n state => {\n let { seriesItems } = state;\n\n seriesItems = [].concat(seriesItems);\n seriesItems[index].value = value;\n\n return { seriesItems };\n },\n () => {\n this.sendChange();\n }\n );\n }\n\n handleSeriesDeleteClick(event) {\n const index = event.target.getAttribute('data-index');\n\n this.setState(\n state => {\n let { seriesItems } = state;\n\n seriesItems = [].concat(seriesItems);\n seriesItems.splice(index, 1);\n\n return { seriesItems };\n },\n () => {\n this.sendChange();\n }\n );\n }\n\n handleSubmit(event) {\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({ type: `${type}`, series, xAxis, isLinked });\n }\n\n handleTypeClick(event) {\n const index = event.target.getAttribute('data-index');\n const type = ChartBuilder.types[index];\n\n log.debug2('handleTypeSelect', type);\n\n this.setState(\n state => {\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(type);\n let { seriesItems } = state;\n seriesItems = seriesItems.slice(0, maxSeriesCount);\n if (seriesItems.length === 0 && maxSeriesCount > 0) {\n const { model } = this.props;\n const { columns } = model;\n seriesItems = ChartBuilder.makeDefaultSeriesItems(type, columns);\n }\n\n return { type, seriesItems };\n },\n () => {\n this.sendChange();\n }\n );\n }\n\n handleXAxisChange(event) {\n const xAxis = event.target.value;\n log.debug2('x-axis change', xAxis);\n\n this.setState({ xAxis }, () => {\n this.sendChange();\n });\n }\n\n sendChange() {\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() {\n const { model } = this.props;\n const { columns } = model;\n const { seriesItems, type, xAxis, isLinked } = this.state;\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(type);\n const xAxisLabel = ChartBuilder.getXAxisLabel(type);\n const seriesLabel = ChartBuilder.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 {ChartBuilder.types.map((chartType, index) => (\n <div key={chartType} className=\"col col-chart-type\">\n <button\n type=\"button\"\n className={classNames('btn', 'btn-icon', 'btn-chart-type', {\n active: chartType === type,\n })}\n data-index={index}\n onClick={this.handleTypeClick}\n >\n {ChartBuilder.getTypeIcon(chartType)}\n {ChartBuilder.getTypeName(chartType)}\n </button>\n </div>\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 custom-select 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 >\n <label className=\"col-2 label-left\">\n {i === 0 ? seriesLabel : ''}\n </label>\n <select\n className=\"form-control custom-select select-series col\"\n value={seriesItem.value}\n onChange={this.handleSeriesChange}\n data-index={i}\n >\n {columns.map(column => (\n <option key={column.name} value={column.name} data-index={i}>\n {column.name}\n </option>\n ))}\n </select>\n {seriesItems.length > 1 && (\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-delete-series ml-2 px-2\"\n data-index={i}\n onClick={this.handleSeriesDeleteClick}\n >\n <FontAwesomeIcon icon={vsTrash} />\n </button>\n )}\n </div>\n ))}\n {isAddSeriesVisible && (\n <div className=\"form-row\">\n <div className=\"col-2\" />\n <button\n type=\"button\"\n className=\"btn btn-link btn-add-series mt-1\"\n onClick={this.handleAddSeries}\n >\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\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 onChange={this.handleLinkStateChange}\n value={`${isLinked}`}\n >\n <RadioItem value=\"true\">Sync State</RadioItem>\n <RadioItem value=\"false\">Freeze State</RadioItem>\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 type=\"button\"\n className=\"btn btn-outline-primary btn-reset\"\n onClick={this.handleReset}\n >\n Reset\n </button>\n <button type=\"submit\" className=\"btn btn-primary btn-submit\">\n Create\n </button>\n </div>\n </form>\n </div>\n );\n }\n}\n\nChartBuilder.propTypes = {\n model: PropTypes.instanceOf(IrisGridModel).isRequired,\n onSubmit: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default ChartBuilder;\n"],"file":"ChartBuilder.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/sidebar/ChartBuilder.jsx"],"names":["React","PureComponent","PropTypes","classNames","FontAwesomeIcon","RadioGroup","RadioItem","vsLink","dhUnlink","dhTable","dhNewCircleLargeFilled","vsCircleLargeFilled","vsTrash","dh","Log","shortid","BarIcon","HistogramIcon","LineIcon","PieIcon","ScatterIcon","IrisGridModel","log","module","ChartBuilder","getTypeName","type","plot","SeriesPlotStyle","LINE","BAR","SCATTER","PIE","HISTOGRAM","getTypeIcon","getMaxSeriesCount","getXAxisLabel","getSeriesLabel","makeSeriesItem","value","id","generate","makeDefaultSeriesItems","columns","maxSeriesCount","length","name","getDefaultXAxis","constructor","props","handleAddSeries","bind","handleLinkStateChange","handleReset","handleSeriesChange","handleSeriesDeleteClick","handleSubmit","handleTypeClick","handleXAxisChange","sendChange","model","types","xAxis","seriesItems","state","isLinked","setState","concat","push","event","target","index","getAttribute","splice","preventDefault","onSubmit","series","map","item","debug2","slice","onChange","render","xAxisLabel","seriesLabel","isSeriesVisible","isAddSeriesVisible","chartType","active","column","seriesItem","i","propTypes","instanceOf","isRequired","func"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { RadioGroup, RadioItem } from '@deephaven/components';\nimport {\n vsLink,\n dhUnlink,\n dhTable,\n dhNewCircleLargeFilled,\n vsCircleLargeFilled,\n vsTrash,\n} from '@deephaven/icons';\nimport dh from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport shortid from 'shortid';\nimport {\n BarIcon,\n HistogramIcon,\n LineIcon,\n PieIcon,\n ScatterIcon,\n} from './icons';\nimport './ChartBuilder.scss';\nimport IrisGridModel from '../IrisGridModel';\n\nconst log = Log.module('ChartBuilder');\n\n/**\n * Form for configuring all the settings when creating a console.\n */\nclass ChartBuilder extends PureComponent {\n static types = [\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 * 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 static getTypeName(type) {\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 static getTypeIcon(type) {\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 static getMaxSeriesCount(type) {\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 getXAxisLabel(type) {\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 static getSeriesLabel(type) {\n switch (type) {\n case dh.plot.SeriesPlotStyle.PIE:\n return 'Values';\n default:\n return 'Series';\n }\n }\n\n static makeSeriesItem(value) {\n return { id: shortid.generate(), value };\n }\n\n static makeDefaultSeriesItems(type, columns) {\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(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(type, columns) {\n if (columns != null && columns.length > 0) {\n return columns[0].name;\n }\n\n return null;\n }\n\n constructor(props) {\n super(props);\n\n this.handleAddSeries = this.handleAddSeries.bind(this);\n this.handleLinkStateChange = this.handleLinkStateChange.bind(this);\n this.handleReset = this.handleReset.bind(this);\n this.handleSeriesChange = this.handleSeriesChange.bind(this);\n this.handleSeriesDeleteClick = this.handleSeriesDeleteClick.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleTypeClick = this.handleTypeClick.bind(this);\n this.handleXAxisChange = this.handleXAxisChange.bind(this);\n this.sendChange = this.sendChange.bind(this);\n\n const { model } = props;\n const { columns } = model;\n\n const type = ChartBuilder.types[0];\n const xAxis = ChartBuilder.getDefaultXAxis(type, columns);\n const seriesItems = ChartBuilder.makeDefaultSeriesItems(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 handleAddSeries() {\n this.setState(state => {\n let { seriesItems } = state;\n seriesItems = [].concat(seriesItems);\n\n const { model } = this.props;\n const { columns } = model;\n seriesItems.push({\n id: shortid.generate(),\n value: columns[0].name,\n });\n\n return { seriesItems };\n }, this.sendChange);\n }\n\n handleLinkStateChange(event) {\n this.setState({ isLinked: event.target.value === 'true' }, this.sendChange);\n }\n\n handleReset() {\n const { model } = this.props;\n const { columns } = model;\n\n const type = ChartBuilder.types[0];\n const xAxis = ChartBuilder.getDefaultXAxis(type, columns);\n const seriesItems = ChartBuilder.makeDefaultSeriesItems(type, columns);\n const isLinked = true;\n\n this.setState({ type, seriesItems, xAxis, isLinked }, this.sendChange);\n }\n\n handleSeriesChange(event) {\n const { value } = event.target;\n const index = event.target.getAttribute('data-index');\n\n this.setState(state => {\n let { seriesItems } = state;\n\n seriesItems = [].concat(seriesItems);\n seriesItems[index].value = value;\n\n return { seriesItems };\n }, this.sendChange);\n }\n\n handleSeriesDeleteClick(event) {\n const index = event.target.getAttribute('data-index');\n\n this.setState(state => {\n let { seriesItems } = state;\n\n seriesItems = [].concat(seriesItems);\n seriesItems.splice(index, 1);\n\n return { seriesItems };\n }, this.sendChange);\n }\n\n handleSubmit(event) {\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({ type: `${type}`, series, xAxis, isLinked });\n }\n\n handleTypeClick(event) {\n const index = event.target.getAttribute('data-index');\n const type = ChartBuilder.types[index];\n\n log.debug2('handleTypeSelect', type);\n\n this.setState(state => {\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(type);\n let { seriesItems } = state;\n seriesItems = seriesItems.slice(0, maxSeriesCount);\n if (seriesItems.length === 0 && maxSeriesCount > 0) {\n const { model } = this.props;\n const { columns } = model;\n seriesItems = ChartBuilder.makeDefaultSeriesItems(type, columns);\n }\n\n return { type, seriesItems };\n }, this.sendChange);\n }\n\n handleXAxisChange(event) {\n const xAxis = event.target.value;\n log.debug2('x-axis change', xAxis);\n\n this.setState({ xAxis }, this.sendChange);\n }\n\n sendChange() {\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() {\n const { model } = this.props;\n const { columns } = model;\n const { seriesItems, type, xAxis, isLinked } = this.state;\n const maxSeriesCount = ChartBuilder.getMaxSeriesCount(type);\n const xAxisLabel = ChartBuilder.getXAxisLabel(type);\n const seriesLabel = ChartBuilder.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 {ChartBuilder.types.map((chartType, index) => (\n <div key={chartType} className=\"col col-chart-type\">\n <button\n type=\"button\"\n className={classNames('btn', 'btn-icon', 'btn-chart-type', {\n active: chartType === type,\n })}\n data-index={index}\n onClick={this.handleTypeClick}\n >\n {ChartBuilder.getTypeIcon(chartType)}\n {ChartBuilder.getTypeName(chartType)}\n </button>\n </div>\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 custom-select 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 custom-select select-series col\"\n value={seriesItem.value}\n onChange={this.handleSeriesChange}\n data-testid={`select-series-item-${i}`}\n data-index={i}\n >\n {columns.map(column => (\n <option key={column.name} value={column.name} data-index={i}>\n {column.name}\n </option>\n ))}\n </select>\n {seriesItems.length > 1 && (\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-delete-series ml-2 px-2\"\n data-index={i}\n data-testid={`delete-series-${i}`}\n onClick={this.handleSeriesDeleteClick}\n >\n <FontAwesomeIcon icon={vsTrash} />\n </button>\n )}\n </div>\n ))}\n {isAddSeriesVisible && (\n <div className=\"form-row\">\n <div className=\"col-2\" />\n <button\n type=\"button\"\n className=\"btn btn-link btn-add-series mt-1\"\n onClick={this.handleAddSeries}\n >\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\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 onChange={this.handleLinkStateChange}\n value={`${isLinked}`}\n >\n <RadioItem value=\"true\">Sync State</RadioItem>\n <RadioItem value=\"false\">Freeze State</RadioItem>\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 type=\"button\"\n className=\"btn btn-outline-primary btn-reset\"\n onClick={this.handleReset}\n >\n Reset\n </button>\n <button type=\"submit\" className=\"btn btn-primary btn-submit\">\n Create\n </button>\n </div>\n </form>\n </div>\n );\n }\n}\n\nChartBuilder.propTypes = {\n model: PropTypes.instanceOf(IrisGridModel).isRequired,\n onSubmit: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default ChartBuilder;\n"],"file":"ChartBuilder.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "0.11.6-beta.
|
|
3
|
+
"version": "0.11.6-beta.5+b4f6274",
|
|
4
4
|
"description": "Deephaven Iris Grid",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
"start": "cross-env NODE_ENV=development npm run watch"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@deephaven/console": "^0.11.6-beta.
|
|
34
|
-
"@deephaven/grid": "^0.11.6-beta.
|
|
35
|
-
"@deephaven/icons": "^0.11.6-beta.
|
|
36
|
-
"@deephaven/jsapi-shim": "^0.11.6-beta.
|
|
37
|
-
"@deephaven/react-hooks": "^0.11.6-beta.
|
|
38
|
-
"@deephaven/storage": "^0.11.6-beta.
|
|
39
|
-
"@deephaven/utils": "^0.11.6-beta.
|
|
33
|
+
"@deephaven/console": "^0.11.6-beta.5+b4f6274",
|
|
34
|
+
"@deephaven/grid": "^0.11.6-beta.5+b4f6274",
|
|
35
|
+
"@deephaven/icons": "^0.11.6-beta.5+b4f6274",
|
|
36
|
+
"@deephaven/jsapi-shim": "^0.11.6-beta.5+b4f6274",
|
|
37
|
+
"@deephaven/react-hooks": "^0.11.6-beta.5+b4f6274",
|
|
38
|
+
"@deephaven/storage": "^0.11.6-beta.5+b4f6274",
|
|
39
|
+
"@deephaven/utils": "^0.11.6-beta.5+b4f6274",
|
|
40
40
|
"@fortawesome/react-fontawesome": "^0.1.15",
|
|
41
41
|
"classnames": "^2.3.1",
|
|
42
42
|
"deep-equal": "^2.0.5",
|
|
@@ -59,9 +59,9 @@
|
|
|
59
59
|
"react": "^17.x"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@deephaven/log": "^0.11.6-beta.
|
|
63
|
-
"@deephaven/mocks": "^0.11.6-beta.
|
|
64
|
-
"@deephaven/tsconfig": "^0.11.6-beta.
|
|
62
|
+
"@deephaven/log": "^0.11.6-beta.5+b4f6274",
|
|
63
|
+
"@deephaven/mocks": "^0.11.6-beta.5+b4f6274",
|
|
64
|
+
"@deephaven/tsconfig": "^0.11.6-beta.5+b4f6274"
|
|
65
65
|
},
|
|
66
66
|
"files": [
|
|
67
67
|
"dist"
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"publishConfig": {
|
|
73
73
|
"access": "public"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "b4f6274363e05fc70a920716faa1ff5171508c70"
|
|
76
76
|
}
|