UNPKG

10.9 kBSource Map (JSON)View Raw
1{"version":3,"sources":["src/PlotlyRenderers.jsx"],"names":["createPlotlyRenderers","makeRenderer","PlotlyComponent","traceOptions","layoutOptions","transpose","Renderer","pivotData","props","rowKeys","getRowKeys","colKeys","getColKeys","traceKeys","length","push","datumKeys","fullAggName","aggregatorName","numInputs","aggregators","vals","slice","join","data","map","values","labels","datumKey","val","parseFloat","getAggregator","traceKey","value","isFinite","trace","name","x","y","Object","assign","titleText","hAxisTitle","rows","cols","groupByTitle","layout","title","hovermode","width","window","innerWidth","height","innerHeight","xaxis","automargin","yaxis","plotlyOptions","PureComponent","defaultProps","propTypes","makeScatterRenderer","text","type","mode","v","rowKey","colKey","domain","barmode","orientation"],"mappings":"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","file":"PlotlyRenderers.js","sourcesContent":["import React from 'react';\nimport {PivotData} from './Utilities';\n\nfunction makeRenderer(\n PlotlyComponent,\n traceOptions = {},\n layoutOptions = {},\n transpose = false\n) {\n class Renderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const rowKeys = pivotData.getRowKeys();\n const colKeys = pivotData.getColKeys();\n const traceKeys = transpose ? colKeys : rowKeys;\n if (traceKeys.length === 0) {\n traceKeys.push([]);\n }\n const datumKeys = transpose ? rowKeys : colKeys;\n if (datumKeys.length === 0) {\n datumKeys.push([]);\n }\n\n let fullAggName = this.props.aggregatorName;\n const numInputs =\n this.props.aggregators[fullAggName]([])().numInputs || 0;\n if (numInputs !== 0) {\n fullAggName += ` of ${this.props.vals.slice(0, numInputs).join(', ')}`;\n }\n\n const data = traceKeys.map(traceKey => {\n const values = [];\n const labels = [];\n for (const datumKey of datumKeys) {\n const val = parseFloat(\n pivotData\n .getAggregator(\n transpose ? datumKey : traceKey,\n transpose ? traceKey : datumKey\n )\n .value()\n );\n values.push(isFinite(val) ? val : null);\n labels.push(datumKey.join('-') || ' ');\n }\n const trace = {name: traceKey.join('-') || fullAggName};\n trace.x = transpose ? values : labels;\n trace.y = transpose ? labels : values;\n return Object.assign(trace, traceOptions);\n });\n\n let titleText = fullAggName;\n const hAxisTitle = transpose\n ? this.props.rows.join('-')\n : this.props.cols.join('-');\n const groupByTitle = transpose\n ? this.props.cols.join('-')\n : this.props.rows.join('-');\n if (hAxisTitle !== '') {\n titleText += ` vs ${hAxisTitle}`;\n }\n if (groupByTitle !== '') {\n titleText += ` by ${groupByTitle}`;\n }\n\n const layout = {\n title: titleText,\n hovermode: 'closest',\n /* eslint-disable no-magic-numbers */\n width: window.innerWidth / 1.5,\n height: window.innerHeight / 1.4 - 50,\n /* eslint-enable no-magic-numbers */\n xaxis: {\n title: transpose ? fullAggName : null,\n automargin: true,\n },\n yaxis: {\n title: transpose ? null : fullAggName,\n automargin: true,\n },\n };\n\n return (\n <PlotlyComponent\n data={data}\n layout={Object.assign(\n layout,\n layoutOptions,\n this.props.plotlyOptions\n )}\n />\n );\n }\n }\n\n Renderer.defaultProps = PivotData.defaultProps;\n Renderer.propTypes = PivotData.propTypes;\n\n return Renderer;\n}\n\nfunction makeScatterRenderer(PlotlyComponent) {\n class Renderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const rowKeys = pivotData.getRowKeys();\n const colKeys = pivotData.getColKeys();\n if (rowKeys.length === 0) {\n rowKeys.push([]);\n }\n if (colKeys.length === 0) {\n colKeys.push([]);\n }\n\n const data = {x: [], y: [], text: [], type: 'scatter', mode: 'markers'};\n\n rowKeys.map(rowKey => {\n colKeys.map(colKey => {\n const v = pivotData.getAggregator(rowKey, colKey).value();\n if (v !== null) {\n data.x.push(colKey.join('-'));\n data.y.push(rowKey.join('-'));\n data.text.push(v);\n }\n });\n });\n\n const layout = {\n title: this.props.rows.join('-') + ' vs ' + this.props.cols.join('-'),\n hovermode: 'closest',\n /* eslint-disable no-magic-numbers */\n xaxis: {title: this.props.cols.join('-'), domain: [0.1, 1.0]},\n yaxis: {title: this.props.rows.join('-')},\n width: window.innerWidth / 1.5,\n height: window.innerHeight / 1.4 - 50,\n /* eslint-enable no-magic-numbers */\n };\n\n return (\n <PlotlyComponent\n data={[data]}\n layout={Object.assign(layout, this.props.plotlyOptions)}\n />\n );\n }\n }\n\n Renderer.defaultProps = PivotData.defaultProps;\n Renderer.propTypes = PivotData.propTypes;\n\n return Renderer;\n}\n\nexport default function createPlotlyRenderers(PlotlyComponent) {\n return {\n 'Grouped Column Chart': makeRenderer(\n PlotlyComponent,\n {type: 'bar'},\n {barmode: 'group'}\n ),\n 'Stacked Column Chart': makeRenderer(\n PlotlyComponent,\n {type: 'bar'},\n {barmode: 'stack'}\n ),\n 'Grouped Bar Chart': makeRenderer(\n PlotlyComponent,\n {type: 'bar', orientation: 'h'},\n {barmode: 'group'},\n true\n ),\n 'Stacked Bar Chart': makeRenderer(\n PlotlyComponent,\n {type: 'bar', orientation: 'h'},\n {barmode: 'stack'},\n true\n ),\n 'Line Chart': makeRenderer(PlotlyComponent),\n 'Dot Chart': makeRenderer(PlotlyComponent, {mode: 'markers'}, {}, true),\n 'Scatter Chart': makeScatterRenderer(PlotlyComponent),\n };\n}\n"]}
\No newline at end of file