@deephaven/iris-grid 0.9.4-js-plugins.9 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/IrisGrid.d.ts +1 -1
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +4 -5
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridModelFactory.d.ts +1 -1
- package/dist/IrisGridModelFactory.d.ts.map +1 -1
- package/dist/IrisGridModelFactory.js +8 -1
- package/dist/IrisGridModelFactory.js.map +1 -1
- package/dist/TableUtils.d.ts.map +1 -1
- package/dist/TableUtils.js +2 -0
- package/dist/TableUtils.js.map +1 -1
- package/dist/sidebar/ChartBuilder.js +1 -1
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/package.json +11 -11
|
@@ -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","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, 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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Deephaven Iris Grid",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"start": "cross-env NODE_ENV=development npm run watch"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@deephaven/grid": "^0.
|
|
33
|
-
"@deephaven/icons": "^0.
|
|
34
|
-
"@deephaven/jsapi-shim": "^0.
|
|
35
|
-
"@deephaven/react-hooks": "^0.
|
|
36
|
-
"@deephaven/utils": "^0.
|
|
32
|
+
"@deephaven/grid": "^0.10.0",
|
|
33
|
+
"@deephaven/icons": "^0.10.0",
|
|
34
|
+
"@deephaven/jsapi-shim": "^0.10.0",
|
|
35
|
+
"@deephaven/react-hooks": "^0.10.0",
|
|
36
|
+
"@deephaven/utils": "^0.10.0",
|
|
37
37
|
"@fortawesome/react-fontawesome": "^0.1.12",
|
|
38
38
|
"classnames": "^2.3.1",
|
|
39
39
|
"deep-equal": "^2.0.4",
|
|
@@ -56,10 +56,10 @@
|
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@babel/cli": "^7.16.0",
|
|
59
|
-
"@deephaven/components": "^0.
|
|
60
|
-
"@deephaven/log": "^0.
|
|
61
|
-
"@deephaven/mocks": "^0.
|
|
62
|
-
"@deephaven/tsconfig": "^0.
|
|
59
|
+
"@deephaven/components": "^0.10.0",
|
|
60
|
+
"@deephaven/log": "^0.10.0",
|
|
61
|
+
"@deephaven/mocks": "^0.10.0",
|
|
62
|
+
"@deephaven/tsconfig": "^0.10.0",
|
|
63
63
|
"@svgr/cli": "^5.5.0",
|
|
64
64
|
"@types/react": "^17.0.2",
|
|
65
65
|
"@types/react-dom": "^17.0.2",
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"publishConfig": {
|
|
81
81
|
"access": "public"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "7cf77d69448ab71bc6fd891db642746c409118bc"
|
|
84
84
|
}
|